The following description relates to graphical user interface (GUI) technology, for example, a windowing interface used to interact with various data objects.
Over the years computers have become increasing more complex, supporting multiple software applications with complex functionality. These software applications often have sophisticated, windowed graphical user interfaces with containing tools, information, and displays for manipulating objects. The GUI window can contain menu bars, with pull-down menus, toolbars, and controls. Controls are graphical elements of a GUI that provide a structure for the user interface. Traditional controls include labels, push buttons, radio buttons, icons, group boxes, and tab-strips. A tab-strip is a container that includes several tabs, which can each present information, although only one tab is visible at a time.
Traditionally, there are many ways to structure an application interface in a windowed environment, but three basic approaches are common. These application interface structures typically correspond to a navigation concept, because the interface structure allows the user to navigate among the functionality and objects of the application. In general, simple and intuitive navigation concepts are better for making a GUI interface structure easy to use.
One common application navigation structure is a multi-window interface. A multi-window application can have multiple main windows, each of which can launch other nonmodal or modal windows. A modal window corresponds to a modal state of the application and thus provides limited functionality. A nonmodal window is not limited to a particular modal state, and thus a nonmodal window typically includes a menu bar that provides access to the application's full range of functions.
Traditional modal windows have included tab-strips. For example, one kind of modal window is a palette, which is a small parallel window without a menu that presents application functionality using a tab-strip. A palette typically cannot be manually resized by the user. Such palette-based tabs can be removed from a palette and given their own palette and/or combined with other tabs in another palette by clicking and dragging. Some palettes include functions allowing the tabs to be stacked and minimized within a single palette to reduce the amount of clutter from having many opened palettes on a display at one time.
All the windows in a multi-window interface are parallel windows. Thus, all the windows can be moved independently of each other. A multi-window interface structure allows the user to decide how much display area to devote to each window, and the user can open and work with the different main windows in any order.
Another common application navigation structure is the Multiple Document Interface (MDI) provided by Microsoft Corporation of Redmond, Wash. An MDI application has only one main window that displays a main menu. Application objects can be opened in child windows. A child window can be moved and resized only within the main window, and the child window typically does not include pull-down menus.
Another common application navigation structure is the multi-tab interface. A multi-tab application has one main window that displays a main menu. Application objects can be opened in a tab-strip. The tab-strip clusters the tabs, which present the opened objects. The tab-strip allows the user to switch between several objects by clicking the tabs. The objects appear to share the same space on the screen, and only one tab is visible at a time. Traditional Hypertext Markup Language (HTML) development tools provide a multi-tab interface to serve as an object-editor.
Some conventional windowing interfaces also allow windows to be docked to each other, such that docked windows move together. Moreover, some conventional windowing interfaces allow predefined interface portions of a current window, which are accessible through push buttons on a toolbar, to be removed and placed in a new window in response to selection of a detach button, such as in BrainEKP™, provided by TheBrain Technologies Corporation of Santa Monica, Calif.